package cn.com.taurus.service;

import cn.com.taurus.entity.ClientAccount;
import cn.com.taurus.entity.DealMessage;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * @author zhy
 * @createTime 2021-6-3 20:49:18
 * @remark 客户账户Service层
 * 交易申请管理、交易流水管理、
 * 赎回申请管理、赎回流水管理、
 * 基金持有管理、修改财务人员个人信息、
 * 修改基金状态后台
 * @version 1.0
 */
@Repository
public interface ClientAccountService {
    /**
     * 资金帐户冻结|解冻
     * @param accountStatus 账户状态
     * @param caId 账户编号
     * @return 是否修改成功 0:失败  1:成功
     */
    public int clientAccountAccountStatusUpdate
    (@Param("accountStatus") String accountStatus, @Param("caId") Integer caId);
    /**
     * 资金冻结|解冻
     * @param frozenMoney 冻结的金额 在程序里面进行计算
     * @param caId 账户编号
     * @return 是否修改成功 0:失败  1:成功
     */
    public int clientAccountFrozenMoneyUpdate
    (@Param("frozenMoney") Double frozenMoney, @Param("caId") Integer caId);
    public int clientAccountRegister(ClientAccount clientaccount);

    public Integer selectBuyPasswordByCId(Integer cId);

    /**
     * 根据cid查询客户账户
     * @param cid 客户编号
     * @return 客户账户
     */
    ClientAccount selectAllPurse(Integer cid);

    /**
     * 根据用户对象修改用户
     * @param clientAccount 用户对象
     * @return 是否成功
     */
    Integer clientAccountUpdate(ClientAccount clientAccount);
    /**
     * 根据cid查询caId;
     * @param cId
     * @return
     */
    public Integer selectCaIdByCid(Integer cId);
    /**
     * 根据caId查询cId;
     * @param caId
     * @return
     */
    public Integer selectCIdByCaId(Integer caId);

    Double selectOverAllAssetByCaId(Integer caId);
    /**
     * 根据caId修改账户总资产
     * @param overAllAsset
     * @return
     */
    Integer chargeMoney(@Param("overAllAsset") Double overAllAsset, @Param("caId") Integer caId);


}
